\subsubsection{Implementación de cliente ARP}

En la primera parte del trabajo se implementa un cliente ARP, para lo cual se utiliza Scapy, esta herramienta provee la funcionalidad para armar los paquetes, enviarlos, recibirlos, ver el estado de las operaciones, etc. 

Scapy trabaja sobre python, algunas pruebas se pueden correr directamente ejecutando desde la consola del programa, o ya para casos mas complejos se pasa el archivo por linea de comando. Debido a que las operaciones tienen acceso a capas red de bajo nivel, puede que sea necesario ejecutar scapy con permisos de administrador.

\subsubsection{Análisis de trafico ARP}

Reunir la información para hacer un analisis del trafico de red puede hacerse por estas dos vías:
\begin{itemize}

\item Scapy : función sniff() 
La segunda consigna del trabajo practico genera un listado de todos los paquetes del tipo ARP que fueron capturados por el puerto elegido. 
La información de este listado la obtiene Scapy mediante la función sniff(). 

\item Wireshark 
Otro método para extraer la información de ARP de una interfaz de red es utilizando \texttt{wireshark}. Este software se configura eligiendo una interfaz por donde escuchar, y seleccionando filtros de manera que solo capture paquetes ARP. El detalle de información obtenida es similar al método de Scapy, solo que \texttt{wireshark} cuenta con una interfaz de usuario mas amigable.

\end{itemize}

A partir de estos datos, se utiliza la librería de python \texttt{pydot} para graficar los resultados. Pydot permite graficar los host en forma de árbol, lo que posibilita visualizar la relación entre IP fuente y destino de cada paquete ARP.
